In [1]:
from ipysankeywidget import SankeyWidget
This uses the base ipywidgets for layout and data, but you can use any widgets!
In [2]:
from ipywidgets import (
VBox,
HBox,
IntSlider,
)
In [3]:
links = [
{'source': 'start', 'target': 'A', 'value': 10},
{'source': 'A', 'target': 'B', 'value': 10},
{'source': 'C', 'target': 'A', 'value': 10},
{'source': 'A', 'target': 'C', 'value': 10},
]
In [4]:
sankey = SankeyWidget(links=links)
sankey
A convenience factory function
In [5]:
def slider(link, i, sankey):
value = IntSlider(description="{source} → {target}".format(**link), min=0, max=10, step=1, value=10)
def _change(change):
sankey.links[i]["value"] = value.value
sankey.send_state()
value.observe(_change)
return value
Build up a slider per link to control the value:
In [6]:
sliders = [slider(link, i, sankey) for i, link in enumerate(links)]
In [7]:
box = HBox(children=[sankey, VBox(children=sliders)])
box
In [ ]: